package exception;

/**
 * finally块
 *
 * finally块是异常处理机制中的最后一个部分,它可以直接跟在try之后,或者最后一个
 * catch之后,它能保证只要程序执行到try语句块中,不管出现什么情况
 * finally块中的代码就必定执行.
 *
 * 通常象资源释放这类操作就要放在finally中确保执行,比如IO操作后的close调用.
 */
public class FinallyDemo {
    public static void main(String[] args) {
        System.out.println("程序开始了....");

        try {
            String str = "abd";

            System.out.println(Integer.parseInt(str));
            /*
                finally可以确保当catch捕获不到try中出现的异常时,也可确保执行
                或者try语句块中执行了return后,finally也要确保执行后方法才
                可以真正返回
             */
            //str为null值,先的catch捕获不到空指针
        } catch (NumberFormatException e) {
            System.out.println("52151");
        }finally {
            System.out.println("finally中的代码执行了");
        }

        System.out.println("程序结束了");

    }
}
